#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <string.h>
#include <sys/mman.h>
#include <fcntl.h>
#include <sys/wait.h>
#include <signal.h>

int main()
{
    // 手动屏蔽信号
    // 自定义信号集集合
    sigset_t myset;
    // 清空集合
    sigemptyset(&myset);
    // 添加要阻塞的信号
    sigaddset(&myset, SIGINT);  // ctrl + c
    sigaddset(&myset, SIGQUIT); // ctrl + 反斜杠
    sigaddset(&myset, SIGKILL); // 9号不号不能阻塞不能被不捕捉
    sigdelset(&myset, SIGINT);
    

    // 自定义集合数据设置给内核的阻塞信号集
    sigprocmask(SIG_BLOCK, &myset, NULL);
    while (1)
    {
        sigset_t pendset;
        sigpending(&pendset);
        for (int i = 1; i < 32; i++)
        {
            if (sigismember(&pendset, i))
            {
                printf("1");
            }
            else
            {
                printf("0");
            }
        }
        printf("\n");
        sleep(1);
    }
}
